Efficient Fetch-and-Increment

نویسندگان

  • Faith Ellen
  • Vijaya Ramachandran
  • Philipp Woelfel
چکیده

A Fetch&Inc object stores a non-negative integer and supports a single operation, fi, that returns the value of the object and increments it. Such objects are used in many asynchronous shared memory algorithms, such as renaming, mutual exclusion, and barrier synchronization. We present an efficient implementation of a wait-free Fetch&Inc object from registers and load-linked/store-conditional (ll/sc) objects. In a system with p processes, every fi operation finishes in O(log p) steps, and only a polynomial number of registers and O(log p)-bit ll/sc objects are needed. The maximum number of fi operations that can be supported is limited only by the maximum integer that can be stored in a shared register. This is the first wait-free implementation of a Fetch&Inc object that achieves both poly-logarithmic step complexity and polynomial space complexity, but does not require unrealistically large ll/sc objects or registers.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Process Coordination with Fetch - and - Increment by Eric

The fetch-and-add (F&A) operation has been used effectively in a number of process coordination algorithms. In this paper we assess the power of fetch-and-increment (F&I) and fetch-anddecrement (F&D), which we view as restricted forms of F&A in which the only addends permitted are ±1. F&A-based algorithms that use only unit addends are thus trivially expressed with just F&I and F&D. Our primary...

متن کامل

The Instancy of Snapshots and Commuting Objects

We present a sequence of constructions of commuting synchronization objects (e.g., fetch-and-increment and fetch-and-add) in a system of n processors from any two processor synchronization object whose consensus number is two or more Her91a]. Each implementation in the sequence uses a particular type of shared memory snapshot, as a building block. Later implementations in the sequence are based...

متن کامل

Towards Reduced Instruction Sets for Synchronization

Contrary to common belief, a recent work by Ellen, Gelashvili, Shavit, and Zhu has shown that computability does not require multicore architectures to support “strong” synchronization instructions like compare-and-swap, as opposed to combinations of “weaker” instructions like decrement and multiply . However, this is the status quo, and in turn, most efficient concurrent data-structures heavil...

متن کامل

The counting pyramid: an adaptive distributed counting scheme

A distributed counter is a concurrent object which provides a fetch-and-increment operation on a shared value. On the basis of a distributed counter, one can implement various fundamental data structures, such as queues or stacks. We present the counting pyramid, an efficient implementation of a distributed counter in a message passing system, which is based on software combining. The counting ...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2012